
const db = require('../../MySql');
/**
     * 构造函数 - 创建题目题库关联对象实例
     * 用于封装题目与题库之间的关联关系，以及题目在题库中的排序信息
     * 对应数据库中的 el_qu_repo 表，记录题目所属的题库和显示顺序
     * 
 */
class el_qu_repo {
    /**
     * @param {string} id - 关联记录ID，唯一标识符
     * @param {string} qu_id - 题目ID，关联的试题
     * @param {string} repo_id - 题库ID，题目所属的题库
     * @param {number} qu_type - 题目类型（1-单选题，2-多选题，3-判断题，4-简答题等）
     * @param {number} sort - 排序序号，题目在题库中的显示顺序
     * 
     * 使用示例：
     * const quRepo = new el_qu_repo(
     *     'qr001',           // 关联记录ID
     *     'qu123',           // 题目ID
     *     'repo456',         // 题库ID
     *     1,                 // 单选题
     *     5                  // 在题库中排第5位
     * );
     * 
     */
    constructor(id, qu_id, repo_id, qu_type, sort) {
        this.id = id
        this.qu_id = qu_id
        this.repo_id = repo_id
        this.qu_type = qu_type
        this.sort = sort
    }


    /**
     * @param {string} qu_id - 题目ID，关联的题目
     * @returns {Promise<object[]>} - 数据库操作结果对象数组
     * 功能描述：
     * 根据题库ID查询题目题库关联对象实例数组，用于获取该题库下的所有题目
     */
    static async findQuRepoByQuId(qu_id) {
        const [results] = await db.query(`
            select * from el_qu_repo where qu_id=?
        `, [qu_id])
        return results
    }

    /**
     * @param {string} repo_id - 题库ID，关联的题库
     * @returns {Promise<object[]>} - 数据库操作结果对象数组
     * 功能描述：
     * 根据题库ID查询题目题库关联对象实例数组，用于获取该题库下的所有题目
     */
    static async findQuRepoByRepoId(repo_id) {
        const [results] = await db.query(`
            select * from el_qu_repo where repo_id=?
        `, [repo_id])
        return results
    }



}

module.exports = el_qu_repo